# 1. 导入socket模块
import socket

# 2. 创建tcp客户端socket对象
# 2.1 AF_INET: 表示ipv4地址类型, AF_INET6表示ipv6地址类型
# 2.2 SOCK_STREAM: 表示传输协议类型是tcp
tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 3. 建立连接, 本质上和服务端套接字建立连接
tcp_client_socket.connect(("192.168.0.103", 9090))

# 代码能够执行到此，说明连接建立成功
content = "hello,我是客户端"
# 对字符串进行编码
# 提示: window 的网络调试助手使用gbk编码， 乌班图的网络调试助手使用utf-8
data = content.encode("gbk")
# 4. 给服务程序发送数据
tcp_client_socket.send(data)

# 5. 接收服务程序发送的数据
# 1024单位是字节， 每次接收的最大字节数
recv_data = tcp_client_socket.recv(1024)

# 对二进制数据进行解码, , errors="ignore" 表示对应解码不成功的数据进行忽略，保证程序不崩溃
recv_content = recv_data.decode('gbk')

print("接收服务端的数据为:", recv_content)


# 6. 关闭套接字
tcp_client_socket.close()
